package com.parcial.data.fachadas;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.parcial.data.entidades.Respuesta;
import com.parcial.data.util.Campo;
import com.parcial.data.util.Clave;

public class FachadaRespuesta extends FachadaAbstracta<Respuesta> {

	private static FachadaRespuesta fachadaRespuesta;
	
	public static FachadaRespuesta getFachadaRespuesta() {
		if(fachadaRespuesta == null) {
			fachadaRespuesta = new FachadaRespuesta();
		}
		return fachadaRespuesta;
	}
	
	private FachadaRespuesta() {
	}
	
	@Override
	protected String obtenerNombreTabla() {
		return Respuesta.class.getSimpleName();
	}
	
	@Override
	protected String obtenerOrderString() {
		Clave auxClave = new Clave();
		auxClave.setColumnas(Respuesta.columnasClave());
		return auxClave.toOrderString();
	}

	@Override
	protected List<Campo> obtenerCampos(Respuesta respuesta) {
		List<Campo> campos = new ArrayList<Campo>();
		campos.add(new Campo(Integer.class, respuesta.getIdRespuesta()));
		campos.add(new Campo(Integer.class, respuesta.getNroPreguntaFk()));
		campos.add(new Campo(String.class, respuesta.getRespuesta()));
		campos.add(new Campo(String.class, respuesta.getLetra()));
		return campos;
	}

	@Override
	protected List<Respuesta> convertirRS(ResultSet rs) {
		List<Respuesta> rtas = new ArrayList<Respuesta>();
		try {
			while (rs.next()) {
				Respuesta resp = new Respuesta();
				resp.setIdRespuesta(rs.getInt("idRespuesta"));
				resp.setNroPreguntaFk(rs.getInt("nroPreguntaFk"));
				resp.setRespuesta(rs.getString("respuesta"));
				resp.setLetra(rs.getString("letra"));
				rtas.add(resp);
			}
		} catch (Exception e) {
			System.out.println("Error al obtener la lista de respuestas");
			System.out.println(e.getMessage());
			e.printStackTrace();
		}
		return rtas;
	}

}
